package com.atguigu.cloud.config;

import feign.Logger;
import feign.Retryer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author 23087
 */
@Configuration
public class FeignConfig {

    @Bean
    public Retryer myRetryer() {
        // Feign 默认配置是不走重试策略的
//        return Retryer.NEVER_RETRY;

        // 最大请求次数为 3（1+2），初始化间隔时间为 100ms，重试间最大间隔时间为 1s
        return new Retryer.Default(100,1,3);
    }

    /**
     * feign 日志级别（必须手动开启）
     *
     * 日志级别：
     *  NONE：默认的，不显示任何日志
     *  BASIC：仅记录请求方法、URL、响应状态码及执行时间
     *  HEADERS：除了 BASIC 中定义的信息之外，还有请求和响应的头信息
     *  FULL：除了 HEADERS 中定义的信息之外，还有请求和响应的正文及元数据
     * @return
     */
    @Bean
    Logger.Level feignLoggerLevel() {
        return Logger.Level.FULL;
    }

}
